package org.summer.lawyer.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 转账单对象 pay_transfer
 *
 * @author summer
 * @date 2024-06-28
 */
@Data
@TableName("pay_transfer")
public class PayTransfer  {


    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;



    /**
     * 转账订单ID
     */
    @TableField(value = "transfer_no")
    private String transferNo;



    /**
     * 转账批次单号
     */
    @TableField(value = "transfer_batch_no")
    private String transferBatchNo;



    /**
     * 支付应用ID
     */
    @TableField(value = "app_id")
    private Long appId;



    /**
     * 微信appid
     */
    @TableField(value = "wx_app_id")
    private String wxAppId;



    /**
     * 商户号
     */
    @TableField(value = "mch_no")
    private String mchNo;



    /**
     * 商户名称
     */
    @TableField(value = "mch_name")
    private String mchName;



    /**
     * 通道ID
     */
    @TableField(value = "channel_id")
    private Long channelId;



    /**
     * 通道编码
     */
    @TableField(value = "channel_code")
    private String channelCode;



    /**
     * 提现记录编号
     */
    @TableField(value = "withdraw_number")
    private String withdrawNumber;



    /**
     * 用户ID
     */
    @TableField(value = "user_id")
    private Long userId;



    /**
     * 用户openId
     */
    @TableField(value = "open_id")
    private String openId;



    /**
     * 收款方姓名
     */
    @TableField(value = "user_name")
    private String userName;



    /**
     * 转账说明
     */
    @TableField(value = "transfer_remark")
    private String transferRemark;



    /**
     * 第三方交易号
     */
    @TableField(value = "trade_no")
    private String tradeNo;



    /**
     * 付款方式
     */
    @TableField(value = "pay_way")
    private String payWay;



    /**
     * 转账状态
     */
    @TableField(value = "transfer_status")
    private Integer transferStatus;



    /**
     * 转账时间
     */
    @TableField(value = "transfer_time")
    private Date transferTime;



    /**
     * 回调状态（1成功，2失败）
     */
    @TableField(value = "return_status")
    private Integer returnStatus;



    /**
     * 支付金额（单位分）
     */
    @TableField(value = "amount")
    private Long amount;



    /**
     * 第三方返回的错误码
     */
    @TableField(value = "result_code")
    private String resultCode;



    /**
     * 第三方返回的错误信息
     */
    @TableField(value = "result_msg")
    private String resultMsg;



    /**
     * 提交的信息
     */
    @TableField(value = "post_json")
    private String postJson;



    /**
     * 回调的信息
     */
    @TableField(value = "return_json")
    private String returnJson;



    /**
     * 回调时间
     */
    @TableField(value = "return_time")
    private Date returnTime;



    /**
     * 回调地址
     */
    @TableField(value = "notify_url")
    private String notifyUrl;



    /**
     * 成功时间
     */
    @TableField(value = "success_time")
    private LocalDateTime successTime;



    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @TableLogic
    @TableField(value = "del_flag")
    private String delFlag;



    /**
     * 创建者
     */
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private Long createBy;



    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;



    /**
     * 更新者
     */
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private Long updateBy;



    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

}
